package net.suplementos.web.action;

import java.util.List;
import java.util.Date;

import net.suplementos.negocio.FinanceiroDelegate;
import net.suplementos.pojo.Categoria;
import net.suplementos.pojo.Venda;
import net.suplementos.servico.FinanceiroServico;
import net.suplementos.web.LocalConstantes;

import org.apache.struts2.convention.annotation.Action;
import org.apache.struts2.convention.annotation.InterceptorRef;
import org.apache.struts2.convention.annotation.InterceptorRefs;
import org.apache.struts2.convention.annotation.Namespace;
import org.apache.struts2.convention.annotation.Result;

import com.opensymphony.xwork2.ActionSupport;

@Namespace("/consultarVendas")
@InterceptorRefs({
	@InterceptorRef(value = "store", params = {"operationMode", "AUTOMATIC"}),
	@InterceptorRef("defaultStack")
})
public class ConsultarVendasRealizadasAction extends ActionSupport {
	
	private Venda venda;
	private List<Venda> resultadoConsulta;
	private FinanceiroServico financeiroServico = FinanceiroDelegate.getInstance();
	
	private Date dataInicio;
	private Date dataFim;


	@Action(value = "abrirConsultar", results = {
		@Result(name = SUCCESS, location = LocalConstantes.LOCAL_JSP_FINANCEIRO_CONSULTAR_VENDAS + "/consultar.jsp") 
	})
    public String abrirConsultar() throws Exception {
        return SUCCESS;
    }

	@Action(value = "consultar", results = {
		@Result(name = SUCCESS, location = LocalConstantes.LOCAL_JSP_FINANCEIRO_CONSULTAR_VENDAS + "/consultar.jsp")
	})
	public String consultar() throws Exception {
		setResultadoConsulta(financeiroServico.consultarVendasRealizadas(dataInicio, dataFim));

		if (getResultadoConsulta() == null || getResultadoConsulta().isEmpty()) {
			addActionError(getText("geral.mensagem.consulta.sem.retorno"));
			return INPUT;
		}
		return SUCCESS;
	}

	public Venda getVenda() {
		return venda;
	}

	public void setVenda(Venda venda) {
		this.venda = venda;
	}

	public List<Venda> getResultadoConsulta() {
		return resultadoConsulta;
	}

	public void setResultadoConsulta(List<Venda> resultadoConsulta) {
		this.resultadoConsulta = resultadoConsulta;
	}

	public Date getDataInicio() {
		return dataInicio;
	}

	public void setDataInicio(Date dataInicio) {
		this.dataInicio = dataInicio;
	}

	public Date getDataFim() {
		return dataFim;
	}

	public void setDataFim(Date dataFim) {
		this.dataFim = dataFim;
	}
}